package cn.magic.basic.listener;

import cn.magic.basic.service.IPermissionScanService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;

import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import javax.servlet.annotation.WebListener;

// 监听器注解，需要被spring管理
@WebListener
// 加上次此注解表示可以在类中打印日志logif对
@Slf4j
public class PermissionScanInitListener implements ServletContextListener {
    @Autowired
    private IPermissionScanService permissionScanService;

    // spring容器初始化结束之后会执行此方法
    @Override
    public void contextInitialized(ServletContextEvent servletContextEvent) {
        // 为了防止我们初始化操作太耗时，导致程序启动慢，那么我们可以另外开启一个线程来执行这部分操作
        new Thread(()->{
            // 打印日志，开始的时候
            log.info("permissionScan start...");
            permissionScanService.scan();
            // 打印日志，结束后的时候
            log.info("permissionScan stop...");

        }).start();

    }

    // 在项目结束时会执行的方法
    @Override
    public void contextDestroyed(ServletContextEvent servletContextEvent) {
        log.info("contextDestroyed stop...");
    }
}
